package cn.demoncat.util.zookeeper.constant;

import org.apache.curator.retry.ExponentialBackoffRetry;
import org.apache.curator.retry.RetryForever;
import org.apache.curator.retry.RetryNTimes;
import org.apache.curator.retry.RetryUntilElapsed;

/**
 * ZK 连接重试机制
 * 
 * @author 延晓磊
 *
 * @since 2018年11月2日
 */
public final class RetryType {

	/**
	 * 连接失败重试机制 - 永远重试机制：重试间隔毫秒
	 */
	public static final RetryForever RF = new RetryForever(3000);
	/**
	 * 连接失败重试机制 - 定次重试机制：重试的最大次数，重试的间隔毫秒
	 */
	public static final RetryNTimes RNT = new RetryNTimes(10, 3000);
	/**
	 * 连接失败重试机制 - 定时重试机制：重试的最长毫秒，重试的间隔毫秒
	 */
	public static final RetryUntilElapsed RUE = new RetryUntilElapsed(60000, 3000);
	/**
	 * 连接失败重试机制 - 间隔递增机制：重试的起始间隔，最大重试次数
	 */
	public static final ExponentialBackoffRetry EBR = new ExponentialBackoffRetry(3000, 10);
}
